The present invention relates generally to integrated circuit (IC) designs, and more particularly to a non-volatile memory device with a programming current control scheme.
Non-volatile memory is a term to describe the kind of memory devices that do not need constant supply of power to permanently store data. Flash memory is one of the most popular non-volatile memories available in the market, partly because of its capability to allow easy and fast permanent data storage for electronic devices such as computers, digital cameras, and many other portable devices. Flash memory can also provide reliable data storage capability, since it has no moving parts, which often cause failures in hard disc drives.
Various types of flash memory cells have been developed in the last few decades. For example, the memory cell can be a floating gate memory cell, a split gate memory cell, or a multi-bit memory cell. These memory cells typically include a control gate and a separate data storage gate, which can be made of either conductive or dielectric materials. During the programming operation, the control gate is applied a predetermined voltage, the source or drain region of the memory cell is biased at a voltage much higher than the predetermined voltage, and a programming current is applied to flow through the memory cell depending on the data value to be written into the memory cell. Due to the hot carrier effect, electrons are injected from the source or drain region into the data storage gate. After the programming is done, the electrons will be trapped in the data storage gate, thereby storing a value in the memory cell.
Conventionally, the total amount of programming current of a flash memory device depends on the data value that is going to be written in it. For example, the total programming current typically equals to 8 times of the programming current for one memory cell, if the data value is 0×00, which has 8 bits of “0.” Yet, the total programming current typically equals to 4 times of the programming current for one memory cell, if the data value is 0×0F, which has 4 bits of “0” and 4 bits of “1.” As a result, the programming of the flash memory device can be easily disturbed as the data value to be written in the memory device varies.
During the programming operation, some of the memory cells are selected and some are not. At the end of the operation, the voltage at the control gate of the selected memory cell drops significantly, while a current source still maintains the programming current constant on the bit line. This causes the voltage level on the bit line to drop even lower. An unselected memory cell adjacent to the selected memory cell is typically coupled between the bit line and a source line, which it shares with the selected memory cell. While the voltage on the bit line drops to a very low level at the end of the operation, the voltage on the common source line remains very high. Thus, the unselected memory cell is particularly susceptible to a punch-through due to a large voltage difference between the bit line and the source line.
As such, it is desirable to have a non-volatile memory device with a programming current control scheme that addresses the disturbance and punch-through issues.